package com.agp.test.jdk;

import org.junit.Test;

import java.lang.reflect.Proxy;

/**
 * @author agp
 * @version 1.0.0
 * @ClassName UserServiceImpl.java
 * @Description TODO
 * @createTime 2019年02月18日 11:39:00
 */
public class UserServiceImpl implements SuperService {
    public HelloImp helloImp = new HelloImp();

    @Test
    public void sayHello() {

        //调用 helloImp的代理类
        Hello hello = (Hello) Proxy.newProxyInstance(
                getClass().getClassLoader(), // 1. 类加载器
                new Class<?>[]{Hello.class}, // 2. 代理需要实现的接口，可以有多个
                new jdkTest(new HelloImp()));// 3. 方法调用的实际处理者
        System.out.println(hello.sayHello("I love you!"));

        //调用 goodBye的代理类
        GoodBye goodBye = (GoodBye) Proxy.newProxyInstance(
                getClass().getClassLoader(), // 1. 类加载器
                new Class<?>[]{GoodBye.class}, // 2. 代理需要实现的接口，可以有多个
                new jdkTest(new GoodByeImpl()));// 3. 方法调用的实际处理者
        System.out.println(goodBye.sayGoodBye("good bye"));
    }
}
